package org.example.analysis.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.google.common.collect.Lists;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * 项目信息
 */
@Data
@Accessors(chain = true)
@TableName("project_info")
public class ProjectInfo {
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Integer id;
    
    /**
     * 项目名称
     */
    private String projectName;
    
    /**
     * 项目路径
     */
    private String projectPath;
    
    /**
     * 项目描述
     */
    private String description;
    
    /**
     * 最后分析时间
     */
    private Date lastAnalysisTime;
    
    /**
     * 最后修改时间
     */
    private Date lastModifiedTime;
    
    /**
     * 最后修改人
     */
    private String lastModifiedBy;
    
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createdAt;
    
    /**
     * 是否可刷新
     */
    private Boolean refreshable;

    /**
     * 类信息列表
     */
    @TableField(exist = false)
    private transient List<JavaClassInfo> classInfoList = Lists.newArrayList();

    /**
     * 入口点列表
     */
    @TableField(exist = false)
    private transient List<EntryPointInfo> entryPointInfoList = Lists.newArrayList();
} 